package com.wptai.douyin.config;

import com.wptai.douyin.core.DouyinProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 公共配置文件(单例)
 * 
 * @author OF
 * @date 2017年10月10日
 */
public class AppConfig {
	private static final Logger log = LoggerFactory.getLogger(AppConfig.class);
	private static AppConfig appConfig = new AppConfig();

	public AppConfig() {

	}

	public static AppConfig getInstance() {
		return appConfig;
	}

	/** 应用唯一标识 */
	public String appId;
	/** 密钥 */
	public String appSecret;
	/** 超时时间 */
	public String appTimeout = "3000";
	/** 编码 */
	public String appCharset = "utf-8";
	/** 默认配置文件路径 */
	public String configFile = "douyin.properties";
	/** 默认API路径 */
	public String httpUrl = "https://open.douyin.com";
	/** code回调路径 */
	public String redirectUri;

	public static String getConfigFile() {
		return appConfig.configFile;
	}

	public static String getAppId() {
		return appConfig.appId;
	}

	public static AppConfig getAppConfig() {
		return appConfig;
	}

	/**
	 * 配置文件初始化
	 */
	public AppConfig init() {
		// 加载配置文件
		log.debug("init douyin config file start");
		// 加载配置文件
		DouyinProperties.init();
		// 初始化常量
		appConfig.appId = DouyinProperties.getPropertyValue("dy_app_id");
		appConfig.appSecret = DouyinProperties.getPropertyValue("dy_app_secret");
		appConfig.appTimeout = DouyinProperties.getPropertyValue("dy_app_timeout");
		appConfig.appCharset = DouyinProperties.getPropertyValue("dy_app_charset");
		appConfig.httpUrl = DouyinProperties.getPropertyValue("dy_host_url");
		appConfig.redirectUri = DouyinProperties.getPropertyValue("dy_redirect_url");
		log.debug("init douyin config file end");
		return this;
	}

	/**
	 * 设置配置文件
	 * 
	 * @param appId
	 * @param appSecret
	 * @param appTimeout
	 * @param appCharset
	 * @return
	 */
	public AppConfig setConfig(String appId, String appSecret,
			String appTimeout, String appCharset,String httpUrl,String redirectUri) {
		appConfig.appId = appId;
		appConfig.appSecret = appSecret;
		appConfig.appTimeout = appTimeout;
		appConfig.appCharset = appCharset;
		appConfig.httpUrl = httpUrl;
		appConfig.redirectUri = redirectUri;
		return this;
	}

	public AppConfig setConfig(String appId, String appSecret,String redirectUri) {
		appConfig.appId = appId;
		appConfig.appSecret = appSecret;
		appConfig.redirectUri = redirectUri;
		return this;
	}

}
